home *** CD-ROM | disk | FTP | other *** search
/ Champak 132 (Alt) / Vol 132.iso / games / 3d_hyper / 3d_hyper.dcr / Scripts_4_ChooseKeys Text Behavior.ls < prev    next >
Encoding:
Text File  |  2011-06-09  |  2.2 KB  |  89 lines

  1. property pWhichKey, pChosenKey, pGettingKey
  2. global gKeys
  3.  
  4. on getPropertyDescriptionList me
  5.   list = [:]
  6.   addProp(list, #pWhichKey, [#comment: "Which Key?", #format: #symbol, #default: #left, #range: [#left, #right, #gas, #brake]])
  7.   return list
  8. end
  9.  
  10. on beginSprite me
  11.   keyData = VOID
  12.   if voidp(gKeys) then
  13.     gKeys = [:]
  14.   end if
  15.   if voidp(keyData) then
  16.     keyData = [:]
  17.     addProp(keyData, #left, [#text: "Left Arrow", #key: 123])
  18.     addProp(keyData, #right, [#text: "Right Arrow", #key: 124])
  19.     addProp(keyData, #gas, [#text: "Up Arrow", #key: 126])
  20.     addProp(keyData, #brake, [#text: "Down Arrow", #key: 125])
  21.   end if
  22.   chooseKey(me, keyData[pWhichKey].key, keyData[pWhichKey].text)
  23. end
  24.  
  25. on chooseKey me, keyCode, whichKey
  26.   keyData = VOID
  27.   if voidp(keyData) then
  28.     keyData = [:]
  29.     addProp(keyData, #left, [#text: "Left Arrow", #key: 123])
  30.     addProp(keyData, #right, [#text: "Right Arrow", #key: 124])
  31.     addProp(keyData, #gas, [#text: "Up Arrow", #key: 126])
  32.     addProp(keyData, #brake, [#text: "Down Arrow", #key: 125])
  33.   end if
  34.   oldKeyCode = keyData[pWhichKey].key
  35.   oldWhichKey = keyData[pWhichKey].text
  36.   case pWhichKey of
  37.     #left:
  38.       gKeys[#left] = keyCode
  39.     #right:
  40.       gKeys[#right] = keyCode
  41.     #gas:
  42.       gKeys[#gas] = keyCode
  43.     #brake:
  44.       gKeys[#brake] = keyCode
  45.   end case
  46.   case keyCode of
  47.     123:
  48.       text = "Left Arrow"
  49.     124:
  50.       text = "Right Arrow"
  51.     125:
  52.       text = "Down Arrow"
  53.     126:
  54.       text = "Up Arrow"
  55.     49:
  56.       text = "Space"
  57.     48:
  58.       text = "Tab"
  59.     36:
  60.       text = "Enter"
  61.     otherwise:
  62.       text = whichKey
  63.   end case
  64.   keyData[pWhichKey].text = text
  65.   keyData[pWhichKey].key = keyCode
  66.   sprite(me.spriteNum).member.text = text
  67.   pGettingKey = 0
  68.   sendAllSprites(#newKeyChosen, pWhichKey, keyCode, text, oldKeyCode, oldWhichKey)
  69. end
  70.  
  71. on newKeyChosen me, fromWhichKey, newKeyCode, newWhichKey, oldKeyCode, oldWhichKey
  72.   if fromWhichKey <> pWhichKey then
  73.     if gKeys[pWhichKey] = newKeyCode then
  74.       chooseKey(me, oldKeyCode, oldWhichKey)
  75.     end if
  76.   end if
  77. end
  78.  
  79. on getTheKey me
  80.   pGettingKey = 1
  81.   sprite(me.spriteNum).member.text = EMPTY
  82. end
  83.  
  84. on keyWasPressed me, keyCode, whichKey
  85.   if pGettingKey then
  86.     chooseKey(me, keyCode, whichKey)
  87.   end if
  88. end
  89.